/**
 * 对服务器端数据API,以及客户端异步请求技术进行二次封装
 */
export let base = 'https://www.codeboy.com/xuezi/admin/';

/**
 * API-1.1:管理员登录验证
 * 请求方法:
 *  POST
 * 请求数据:
 *  aname:管理员名
 *  apwd:登录密码
 * 服务器端返回:
 *  JSON
 */
export let adminLogin = async (aname, apwd) => {
  // 请求地址和请求选项对象
  let url = base + 'data/admin_login.php';
  console.log(url, aname, apwd);
  let options = {
    method: 'POST',
    headers: {'Content-Type': 'application/x-www-form-urlencoded'},
    body: `aname=${aname}&apwd=${apwd}`,
  };
  // 向服务器发起异步请求,等待得到响应消息对象
  let res = await fetch(url, options);
  // 从响应消息主体读取数据,完成后使用JSON.pares()解析
  /**
   * res.body:ReadableStream,能够读取数据的流对象=>水龙头
   * res.body.on('data',()=>{})
   * res.bidy.on('end',()=>{str})
   * let data = JSON.parse(str)
   */
  let data = await res.json();
  return data;
};

/**
 * API-1.2:当前登录的管理员可用的主菜单
 * 请求地址:data/main_menu.php
 * 返回的数据:JSON
 */
export let maniMenu = async () => {
  let url = base + 'data/main_menu.php';
  console.log(url);
  let res = await fetch(url);
  let data = await res.json();
  return data;
};

/**
 * API-1.3:商品列表
 * 请求方法:GET
 * 请求地址:data/product_list.php
 * 请求参数: pno:要加载的数据页号   pageSize:页面大小(每页显示的数据的数量)
 * 返回的数据:JSON
 */
export let productList = async (pno = 1, pageSize = 10) => {
  let url = base + `data/product_list.php?pno=${pno}&pageSize=${pageSize}`;
  console.log(url);
  let res = await fetch(url);
  let data = await res.json();
  return data;
};

/**
 * API-1.4:商品详情
 * 请求方法:GET
 * 请求地址:data/product_details.php
 * 请求参数: lid:查询的笔记本商品编号
 * 返回的数据:JSON
 */
export let productDetails = async lid => {
  let url = base + `data/product_details.php?lid=${lid}`;
  console.log(url);
  let res = await fetch(url);
  let data = await res.json();
  return data;
};
